﻿using System.Xml;
using System.Xml.Serialization;

namespace Bpmn.Xml;

/// <remarks/>
[XmlInclude(typeof(Process))]
[XmlInclude(typeof(GlobalTask))]
[XmlInclude(typeof(GlobalUserTask))]
[XmlInclude(typeof(GlobalScriptTask))]
[XmlInclude(typeof(GlobalManualTask))]
[XmlInclude(typeof(GlobalBusinessRuleTask))]
[Serializable]
[XmlType(Namespace = "http://www.omg.org/spec/BPMN/20100524/MODEL", TypeName = "tCallableElement")]
[XmlRoot("callableElement", Namespace = "http://www.omg.org/spec/BPMN/20100524/MODEL", IsNullable = false)]
public partial class CallableElement : RootElement
{
    /// <remarks/>
    [XmlElement("supportedInterfaceRef")]
    public XmlQualifiedName[] SupportedInterfaceRef { get; set; } = default!;

    /// <remarks/>
    [XmlElement("ioSpecification")]
    public InputOutputSpecification IoSpecification { get; set; } = default!;

    /// <remarks/>
    [XmlElement("ioBinding")]
    public InputOutputBinding[] IoBinding { get; set; } = default!;

    /// <remarks/>
    [XmlAttribute("name")]
    public string Name { get; set; } = default!;
}
